/**
 * @Author: Liu, Yunfeng
 * @DateTime: 2020/5/19 21:17
 * @Description: 给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
 * 你可以假设数组中无重复元素。
 */
public class SearchInsert {
    public static int searchInsert(int[] nums, int target) {
        if(nums==null||nums.length==0||nums[0]>target){
            return 0;
        }
        int length=nums.length;
        if(length==1){
            if(length==target){
                return 0;
            } else{
              return nums[0]<target?1:0;
            }
        }
        for(int i=0;i<length-1;i++){
            if(nums[i]==target){
                return i;
            }
            if(nums[i]<target&&nums[i+1]>target){
                return i+1;
            }
        }
        if(nums[length-1]==target){
            return length-1;
        }
        return length;
    }

    public static void main(String[] args){
        int[] nums = new int[]{1,3};
        System.out.println(searchInsert(nums,3));
    }
}
/*
* 先排除为null和空数组，返回0，第一个数大于目标数，返回0
* 轮训中间值，相等直接返回下标，不等则判断先后两个数，一大一小则返回大数的下标
* 判断最后一个数是否相等，相等则返回当前坐标
* 轮训一遍没有合适地方则放在最后
* */
